home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
progtool
/
modula2
/
module
/
kbdevnt.def
< prev
next >
Wrap
Text File
|
1995-11-25
|
5KB
|
72 lines
(******************************************************************************)
(* This MODULE is Public Domain. Copy me like a beast! *)
(* Christian Ledermann *)
(* Wölfelkofen 2 *)
(* 84166 Adlkofen *)
(******************************************************************************)
(* *)
(* Started: 20.12.92 03:54:30 *)
(* Version: 20.01.94 04:12:54 *)
(* *)
(******************************************************************************)
(* *)
(* Diese Software ist ohne jede Garantie. Ich verspreche *)
(* keinerlei Wartung und übernehme keine Verantwortung für Schäden die *)
(* durch die Benutzung dieses Programmes entstehen. *)
(* Jegliche Ersatzansprüche lehne ich ab. *)
(* *)
(******************************************************************************)
DEFINITION MODULE KbdEvnt;
FROM SYSTEM IMPORT ADDRESS;
PROCEDURE MenuSearch(AppID:INTEGER; MenuTree:ADDRESS;KeyState,Key:INTEGER;
VAR Taste:CHAR ):BOOLEAN;
(*************************************************************************)
(* Mit MenuSearch kann man seine Drop-Down Menüs durch Tastaturkürzel *)
(* bedienen. *)
(* Der Menüeintrag muß dabei folgendermaßen aufgebaut sein: *)
(* Text (wie Üblich); Blank (wichtig sonst wird der Shortcut nicht als *)
(* solcher erkannt!); Zeichen für Shift, Alternate, Control; Taste (hier *)
(* sind nur Großbuchstaben oder Sonderzeichen erlaubt) *)
(* Zeichen für Shift : CHR(1), Im RCS 1.4 mit Control 'A' zu erreichen. *)
(* Zeichen für Alternate : CHR(7), Im RCS mit Control 'G' zu erreichen. *)
(* Zeichen für Control : ^ *)
(* Diese drei Zeichen können kombiniert werden müssen aber in dieser *)
(* Reihenfolge stehen. *)
(* Als Taste sind sämtliche Zeichen zugelassen die auf der Tastatur *)
(* stehen inclusive der Funktionstasten und Help. *)
(* Ein Menüeintrag muß also folgendermaßen aussehen : ' Speichern ^F2' *)
(* Im Programm hat dann der Druck der Taste control F2 die gleiche *)
(* Wirkung wie die Anwahl des Menüeintrages. *)
(* Einschränkungen : Shift 0-9 kann nur über das Nummernfeld erreicht *)
(* werden, vor §,",!,%,... muss(!) das Shift zeichen stehen. *)
(* Wenn man einige Einträge doppelt vergibt wird immer nur der erste *)
(* gefunden, es sei denn er wäre disabled. *)
(* *)
(* AppID : ID des aufrufenden Programmes, dies ist der Rückgabewert von *)
(* AppInitialize. *)
(* MenuTree : Die ADDRESSe des Menüs das auf Shortcuts untersucht wird, *)
(* Diese ADDRESSe braucht man auch zum Aufbau der Menüzeile mit *)
(* AES.MenuBar; sie wird mit AES.ResourceGetAdrr ermittelt. *)
(* KeyState : Status der Shift, Control und Alternate Tasten; wird von *)
(* AES.EventMultiple als MoKState geliefert. *)
(* Key : Scancode und Asciiwert der gedrückten Taste, wird von *)
(* AES.EventMultiple als KReturn geliefert. *)
(* Taste : gibt den CHAR der gedrückten Taste als Großbuchstabe zurück *)
(* dies ist dazu gedacht falls die Taste nicht im Menü zu finden war in *)
(* eine eigene Tastaturroutine zu verzweigen, und die Berechnung der *)
(* Taste zu vermeiden. *)
(* Rückgabe : TRUE falls die Taste gefunden wurde und die entsprechende *)
(* Message ans eigene Programm abgeschickt wurde, FALSE wenn der Shortcut*)
(* nicht in der Menüleiste gefunden wurde. *)
(* Dies wieder um eine eigene Tastaturroutine einzubinden für nicht im *)
(* Menü verzeichnete Shortcuts. *)
(* -> ST-Computer 11/89. *)
(*************************************************************************)
PROCEDURE ConcatScanString(VAR ScanString : ARRAY OF CHAR;KeyState, Key :INTEGER);
(*********** Hilfsprogramm für MenuSearch ************************)
END KbdEvnt.